home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
earcd
/
emula
/
arosdv19.lha
/
AROS
/
include
/
exec
/
lists.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-14
|
2KB
|
86 lines
#ifndef EXEC_LISTS_H
#define EXEC_LISTS_H
/* (C) 1995 AROS - The Amiga Replacement OS */
/******************************************************************************
FILE
$Id: lists.h,v 1.3 1996/10/14 11:16:02 digulla Exp $
DESCRIPTION
Prototypes and macros for exec-lists.
******************************************************************************/
/**************************************
Includes
**************************************/
#ifndef AROS_SYSTEM_H
# include <aros/system.h>
#endif
#ifndef EXEC_NODES_H
# include <exec/nodes.h>
#endif
/**************************************
Structures
**************************************/
/* Normal list */
struct List
{
struct Node * lh_Head,
* lh_Tail,
* lh_TailPred;
UBYTE lh_Type;
BYTE l_pad;
};
/* Minimal list */
struct MinList
{
struct MinNode * mlh_Head,
* mlh_Tail,
* mlh_TailPred;
};
/**************************************
Makros
**************************************/
#define IsListEmpty(l) \
( (((struct List *)l)->lh_TailPred) == (struct Node *)(l) )
#define IsMsgPortEmpty(mp) \
( (((struct MsgPort *)mp)->mp_MsgList.lh_TailPred) \
== (struct Node *)(&(((struct MsgPort *)mp)->mp_MsgList)) )
#ifdef AROS_ALMOST_COMPATIBLE
# define NEWLIST(l) (((struct List *)l)->lh_TailPred \
= (struct Node *)(l), \
((struct List *)l)->lh_Tail = 0, \
((struct List *)l)->lh_Head \
= (struct Node *)\
&(((struct List *)l)->lh_Tail))
# define GetHead(l) (void *)(((struct List *)l)->lh_Head->ln_Succ \
? ((struct List *)l)->lh_Head \
: (struct Node *)0)
# define GetTail(l) (void *)(((struct List *)l)->lh_TailPred->ln_Pred \
? ((struct List *)l)->lh_TailPred \
: (struct Node *)0)
# define GetSucc(n) (void *)(((struct Node *)n)->ln_Succ->ln_Succ \
? ((struct Node *)n)->ln_Succ \
: (struct Node *)0)
# define GetPred(n) (void *)(((struct Node *)n)->ln_Pred->ln_Pred \
? ((struct Node *)n)->ln_Pred \
: (struct Node *)0)
#endif
/******************************************************************************
***** ENDE exec/lists.h
******************************************************************************/
#endif /* EXEC_LISTS_H */